package com.weiyuwqj.api.model;

import com.weiyuwqj.api.model.vo.RepayAble;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Table(name = "bus_item_repay")
public class BusItemRepay implements RepayAble,Serializable {
    /**
     * 主键
     */
    @Id
    private Integer id;

    /**
     * 外键
     */
    @Column(name = "item_id")
    private Integer itemId;

    /**
     * 投资用户ID，不做外键
     */
    @Column(name = "repay_user_id")
    private Integer repayUserId;

    /**
     * 借款人平台编号
     */
    @Column(name = "platform_id")
    private String platformId;

    /**
     * 还款状态
     */
    private Integer status;

    /**
     * 当前期数
     */
    @Column(name = "repay_current_period")
    private Integer repayCurrentPeriod;

    /**
     * 总期数
     */
    @Column(name = "repay_total_period")
    private Integer repayTotalPeriod;

    /**
     * 应还总额
     */
    @Column(name = "repay_amount")
    private BigDecimal repayAmount;

    /**
     * 应还本金
     */
    @Column(name = "repay_principal")
    private BigDecimal repayPrincipal;

    /**
     * 应还利息
     */
    @Column(name = "repay_interest")
    private BigDecimal repayInterest;

    /**
     * 应还时间
     */
    @Column(name = "repay_time")
    private Date repayTime;

    /**
     * 实际已还总额
     */
    @Column(name = "actual_repay_amount")
    private BigDecimal actualRepayAmount;

    /**
     * 实际已还本金
     */
    @Column(name = "actual_repay_principal")
    private BigDecimal actualRepayPrincipal;

    /**
     * 实际已还利息
     */
    @Column(name = "actual_repay_interest")
    private BigDecimal actualRepayInterest;

    /**
     * 实际已还时间
     */
    @Column(name = "actual_repay_time")
    private Date actualRepayTime;

    /**
     * 加息券收益
     */
    @Column(name = "additional_rate_amount")
    private BigDecimal additionalRateAmount;

    /**
     * 体验金
     */
    @Column(name = "experience_amt")
    private BigDecimal experienceAmt;

    @Column(name = "serve_amount")
    private BigDecimal serveAmount;

    /**
     * 提前还款本期收取服务费
     */
    @Column(name = "prepayment_server_amount")
    private BigDecimal prepaymentServerAmount;

    /**
     * 提前还款这期需要支付的违约金
     */
    @Column(name = "prepayment_dedit")
    private BigDecimal prepaymentDedit;

    /**
     * 订单编号
     */
    @Column(name = "order_no")
    private String orderNo;

    public BigDecimal getPrepaymentDedit() {
        return prepaymentDedit;
    }

    public void setPrepaymentDedit(BigDecimal prepaymentDedit) {
        this.prepaymentDedit = prepaymentDedit;
    }

    public BigDecimal getPrepaymentServerAmount() {
        return prepaymentServerAmount;
    }

    public void setPrepaymentServerAmount(BigDecimal prepaymentServerAmount) {
        this.prepaymentServerAmount = prepaymentServerAmount;
    }

    public BigDecimal getServeAmount() {
        return serveAmount;
    }

    public void setServeAmount(BigDecimal serveAmount) {
        this.serveAmount = serveAmount;
    }

    /**
     * 获取主键
     *
     * @return id - 主键
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置主键
     *
     * @param id 主键
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取外键
     *
     * @return item_id - 外键
     */
    public Integer getItemId() {
        return itemId;
    }

    /**
     * 设置外键
     *
     * @param itemId 外键
     */
    public void setItemId(Integer itemId) {
        this.itemId = itemId;
    }

    /**
     * 获取投资用户ID，不做外键
     *
     * @return repay_user_id - 投资用户ID，不做外键
     */
    public Integer getRepayUserId() {
        return repayUserId;
    }

    /**
     * 设置投资用户ID，不做外键
     *
     * @param repayUserId 投资用户ID，不做外键
     */
    public void setRepayUserId(Integer repayUserId) {
        this.repayUserId = repayUserId;
    }

    /**
     * 获取还款状态
     *
     * @return status - 还款状态
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置还款状态
     *
     * @param status 还款状态
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取当前期数
     *
     * @return repay_current_period - 当前期数
     */
    public Integer getRepayCurrentPeriod() {
        return repayCurrentPeriod;
    }

    /**
     * 设置当前期数
     *
     * @param repayCurrentPeriod 当前期数
     */
    public void setRepayCurrentPeriod(Integer repayCurrentPeriod) {
        this.repayCurrentPeriod = repayCurrentPeriod;
    }

    /**
     * 获取总期数
     *
     * @return repay_total_period - 总期数
     */
    public Integer getRepayTotalPeriod() {
        return repayTotalPeriod;
    }

    /**
     * 设置总期数
     *
     * @param repayTotalPeriod 总期数
     */
    public void setRepayTotalPeriod(Integer repayTotalPeriod) {
        this.repayTotalPeriod = repayTotalPeriod;
    }

    /**
     * 获取应还总额
     *
     * @return repay_amount - 应还总额
     */
    public BigDecimal getRepayAmount() {
        return repayAmount;
    }

    /**
     * 设置应还总额
     *
     * @param repayAmount 应还总额
     */
    public void setRepayAmount(BigDecimal repayAmount) {
        this.repayAmount = repayAmount;
    }

    /**
     * 获取应还本金
     *
     * @return repay_principal - 应还本金
     */
    public BigDecimal getRepayPrincipal() {
        return repayPrincipal;
    }

    /**
     * 设置应还本金
     *
     * @param repayPrincipal 应还本金
     */
    public void setRepayPrincipal(BigDecimal repayPrincipal) {
        this.repayPrincipal = repayPrincipal;
    }

    /**
     * 获取应还利息
     *
     * @return repay_interest - 应还利息
     */
    public BigDecimal getRepayInterest() {
        return repayInterest;
    }

    /**
     * 设置应还利息
     *
     * @param repayInterest 应还利息
     */
    public void setRepayInterest(BigDecimal repayInterest) {
        this.repayInterest = repayInterest;
    }

    /**
     * 获取应还时间
     *
     * @return repay_time - 应还时间
     */
    public Date getRepayTime() {
        return repayTime;
    }

    /**
     * 设置应还时间
     *
     * @param repayTime 应还时间
     */
    public void setRepayTime(Date repayTime) {
        this.repayTime = repayTime;
    }

    /**
     * 获取实际已还总额
     *
     * @return actual_repay_amount - 实际已还总额
     */
    public BigDecimal getActualRepayAmount() {
        return actualRepayAmount;
    }

    /**
     * 设置实际已还总额
     *
     * @param actualRepayAmount 实际已还总额
     */
    public void setActualRepayAmount(BigDecimal actualRepayAmount) {
        this.actualRepayAmount = actualRepayAmount;
    }

    /**
     * 获取实际已还本金
     *
     * @return actual_repay_principal - 实际已还本金
     */
    public BigDecimal getActualRepayPrincipal() {
        return actualRepayPrincipal;
    }

    /**
     * 设置实际已还本金
     *
     * @param actualRepayPrincipal 实际已还本金
     */
    public void setActualRepayPrincipal(BigDecimal actualRepayPrincipal) {
        this.actualRepayPrincipal = actualRepayPrincipal;
    }

    /**
     * 获取实际已还利息
     *
     * @return actual_repay_interest - 实际已还利息
     */
    public BigDecimal getActualRepayInterest() {
        return actualRepayInterest;
    }

    /**
     * 设置实际已还利息
     *
     * @param actualRepayInterest 实际已还利息
     */
    public void setActualRepayInterest(BigDecimal actualRepayInterest) {
        this.actualRepayInterest = actualRepayInterest;
    }

    /**
     * 获取实际已还时间
     *
     * @return actual_repay_time - 实际已还时间
     */
    public Date getActualRepayTime() {
        return actualRepayTime;
    }

    /**
     * 设置实际已还时间
     *
     * @param actualRepayTime 实际已还时间
     */
    public void setActualRepayTime(Date actualRepayTime) {
        this.actualRepayTime = actualRepayTime;
    }

    /**
     * 获取加息券收益
     *
     * @return additional_rate_amount - 加息券收益
     */
    public BigDecimal getAdditionalRateAmount() {
        return additionalRateAmount;
    }

    /**
     * 设置加息券收益
     *
     * @param additionalRateAmount 加息券收益
     */
    public void setAdditionalRateAmount(BigDecimal additionalRateAmount) {
        this.additionalRateAmount = additionalRateAmount;
    }

    /**
     * 获取 体验金
     */
    public BigDecimal getExperienceAmt() {
        return this.experienceAmt;
    }

    /**
     * 设置 体验金
     */
    public void setExperienceAmt(BigDecimal experienceAmt) {
        this.experienceAmt = experienceAmt;
    }

    /**
     * 获取 订单编号
     */
    public String getOrderNo() {
        return this.orderNo;
    }

    /**
     * 设置 订单编号
     */
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    /**
     * 获取 借款人平台编号
     */
    public String getPlatformId() {
        return this.platformId;
    }

    /**
     * 设置 借款人平台编号
     */
    public void setPlatformId(String platformId) {
        this.platformId = platformId;
    }
}